package thread;

public class Demo11 {
    public static void main(String[] args) throws InterruptedException {
        Thread t = new Thread(() -> {
           for(int i = 0;i < 50;i++) {
               System.out.println("hello thread");
               try {
                   Thread.sleep(1000);
               } catch (InterruptedException e) {
                   throw new RuntimeException(e);
               }
           }
            System.out.println("t 结束");
        });

        t.start();

        //Thread.sleep(3000);
        //如果我们想要让这个t线程 先结束后 main线程 再结束这个顺序，那么我们可以使用中断 ---- join()

        //t.join();
        //但是这个写法不是最好的，如果t线程非常长的时间，那么我们就不能进行 “阻塞等待” 我们的main线程就需要进行结束，所以我们就需要传一个等待参数

        t.join(3000);
        //这样呢就是如果在3000 毫秒内，t线程 结束，那么我们的 main线程 就结束，这时候join就会立即执行
        //当我们超过3000 毫秒后，t线程 还没有结束的话，我们还是需要进行join这个操作，
        System.out.println("main 结束");
    }
}
